<?php

    require(dirname(__FILE__).'/../globals.inc'); 
    $mikron->Page->StartBody();
    require_once(dirname(__FILE__).'/menu.inc');

    /*
?>
<table id="table103">
  <thead>
  </thead>
  <tbody>
    </tbody>
</table>   

<!-- http://www.trirand.com/jqgrid35/jqgrid.html -->

<div id="upd-dnd" style="display: none; position: relative; border: 1px solid #ccc; width: 300px;
float: right; margin: 20px 10px 20px 20px; padding: 10px;">Тут будет ответ от сервера</div>
<?php
*/

try
{
    showeditor();
}
catch(Exception $ex)
{
    echo $ex->getMessage();
}

function showeditor()
{
    
    global $mikron;
    $class = isset($_GET['entityname'])?$_GET['entityname']:"";

    // редактирование
    if(isset($_REQUEST['edit']))
    {
        $id = (int)$_GET['id'];
        $item = new $class($id);
        $mikron->EntityManager->ShowForm($item, true, true);
    }
    elseif(isset($_GET['printtable']))
    {
        try
        {
            $mikron->Tools->ShowMySqlTable($_GET['printtable']);
        }
        catch(Exception $ex)
        {
            CriticalError($ex->getMessage(), $ex, true);
        }
    }
    // вывод формы создания нового экземпляра сущности и вывод списка
    else
    {
        try
        {
            if(!class_exists($class))
            {
                throw new Exception("Сущности с именем $class не существует.");
            }
            $count = $mikron->Queries->QueryCount($class, null, new Criterion('mikron_state', 0));
            $maximum = 35;
            $pages = ceil($count / $maximum);
            $pageindex = isset($_GET['page'])?(int)$_GET['page']:1;
            if($pageindex>$pages)
            {
                $pageindex = $pages;
            }
            $startfrom = ($pageindex-1)*$maximum;
            if($startfrom < 0)
            {
                $startfrom = 0;
            }
            $items = $mikron->Queries->Query($class, null, new Criterion('mikron_state', 0), null, "$startfrom,$maximum", null, false, null);
            $item = new $class();
            
            ?><h2>Список элементов типа «<?php echo $item->description(); ?>»</h2><?php
            $mikron->EntityManager->ShowForm($item, true, true);
            if(count($items) > 0)
            {
                ?><p><a href="entityed.php?printtable=<?php echo $class; ?>">Распечатка таблицы</a></p><?php
                $mikron->EntityManager->ShowList($items, true, true, false, false, false, false, $pageindex, $pages);
            }

        }
        catch(Exception $ex)
        {
            CriticalError($ex->getMessage(), null, true);
        }
    }
}

$mikron->Page->EndBody(); ?>